package com.qf.mapper;

import com.qf.pojo.Student;
import com.qf.vo.StudentVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author zdl
 * @date 2025/2/17
 */
public interface StudentMapper {
    /**
     * 根据id 查询 student
     * @param id
     * @return
     */
    Student selectStudentById(int id);

    /**
     * 查询全部学生
     * @return
     */
    List<Student> selectAllStudents();

    /**
     * 根据姓名 年龄 进行模糊查询
     * @param sname
     * @param age
     * @return
     */
    List<Student> selectStudentLikeSnameAndAge(@Param("sname") String sname,@Param("age") Integer age);

    /**
     * 新增student
     * @param student
     * @return
     */
    int insertStudent(Student student);

    /**
     * 根据sname 查询 student
     * @param sname
     * @return
     */
    Student selectStudentBySname(String sname);

    /**
     * 修改
     * @param student
     * @return
     */
    int updateStudent(Student student);

    /**
     * 根据 id  进行 单条 或 单条数据删除
     * @param id
     * @return
     */
    int delBatchStudentByIds(List<Integer> id);

    /**
     * 根据id 删除
     * @param id
     * @return
     */
    int delStudentById(Integer id);

    /**
     * 查询所有学生信息以及关联的班级信息
     * @return
     */
    List<StudentVo> selectAllStudentAndClassRoom();

    /**
     * 根据id查询1个学生信息以及关联的所有学科信息以及每个学科关联的老师信息
     * @param sid
     * @return
     */
    StudentVo selectStudentAndAllSubjectAndTeacherByStuid(Integer sid);



}
